*/
if (S_ISLNK (stbuf.st_mode))
continue;
+ /* If not a mountpoint, skip it */
+ struct statvfs stvfsbuf;
+ if (statvfs (target, &stvfsbuf) == -1)
+ continue;
+ /* If no read-only flag, skip it */
+ if ((stvfsbuf.f_flag & ST_RDONLY) == 0)
+ continue;
+ /* It's a mounted, read-only fs; remount it */
if (mount (target, target, NULL, MS_REMOUNT | MS_SILENT, NULL) < 0)
{
/* Also ignore ENINVAL - if the target isn't a mountpoint
if (errno != EINVAL)
err (EXIT_FAILURE, "failed to remount %s", target);
}
+ else
+ printf ("Remounted: %s\n", target);
}
exit (EXIT_SUCCESS);